package com.pm.mapper.task;

import com.pm.entity.po.dept.DepartmentScore;
import com.pm.entity.po.task.SubtaskDeptTask;
import com.pm.entity.vo.dept.DeptScore;
import com.pm.entity.vo.dept.DeptScoreQuarterVo;
import com.pm.entity.vo.dept.DeptScoreVo;
import com.pm.entity.vo.dept.DeptTaskNumVo;
import com.pm.entity.vo.task.TaskNameVo;
import com.pm.entity.vo.task.TaskVo;
import com.pm.entity.vo.task.TeamScoreRankVo;
import com.pm.mapper.BaseMapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface SubtaskDeptTaskMapper extends BaseMapper<SubtaskDeptTask> {
    int removeBatch(SubtaskDeptTask subtaskDeptTask);

    List<DeptScore> getDeptList(SubtaskDeptTask subtaskDeptTask);

    // 获取考核评分部门清单
    List<DeptScoreVo> getNewDeptList(SubtaskDeptTask subtaskDeptTask);

    Integer getNum(SubtaskDeptTask subtaskDeptTask);

    Integer getNumDepartmentSocre(DepartmentScore departmentScore);

    Integer getNumDepartmentSocreList(DepartmentScore departmentScoreOne);

    List<DeptScoreQuarterVo> getDeptQuarter(DeptScoreQuarterVo deptScoreQuarterVo);

    List<Map<String, Object>> getDeptTaskNum(DeptTaskNumVo deptTaskNumVo);

    List<Map<String, Object>> getDeptTypeTaskNum(TaskVo taskVo);

    List<Map<String, Object>> getDeptByTaskId(TaskVo taskVo);

    /**
     * 根据年分查那个单位那一年有多少工作
     * @param teamScoreRankVo
     * @return
     */
    List<TaskNameVo> getDeptTaskByYear(TeamScoreRankVo teamScoreRankVo);

    List<Map<String, String>> getUpQuarterDept(DeptScoreQuarterVo deptScoreQuarterVo);

    /**
     * 根据季度查询未填写成绩的有多少个
     * @param deptScoreQuarterVo
     * @return
     */
    Integer getDeptQuarterExamine(DeptScoreQuarterVo deptScoreQuarterVo);

    List<Integer> getDeptQuarterIds(DeptScoreQuarterVo deptScoreQuarterVo);

    /**
     * 考核结果填报列表每季度数据查询
     * @param subtaskDeptTask
     * @return
     */
    List<Map<String, Object>> getDeptScoreListByTaskId(SubtaskDeptTask subtaskDeptTask);

    /**
     * 查询四个季度共有多少单位打分
     * @param subtaskDeptTask
     * @return
     */
    List<DeptScore> getDeptListAll(SubtaskDeptTask subtaskDeptTask);

    Map<String, BigDecimal> getDeptScoreList(TeamScoreRankVo teamScoreRankVo);
}